package com.clz.hyperit.util;

import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.clz.hyperit.exception.ApplicationRunTimeException;

public class SendEmail {
	public static final String HOST = "smtp.qq.com";  
    public static final String PROTOCOL = "smtp";     
    public static final int PORT = 587;  
    public static final String FROM = "23335390@qq.com";//发件人的email  
    public static final String PWD = "admijasznpmicagf";//发件人密码    
    /** 
     * 获取Session 
     * @return 
     */  
    private static Session getSession() {  
        Properties props = new Properties();  
        props.put("mail.smtp.host", HOST);//设置服务器地址  
        props.put("mail.store.protocol" , PROTOCOL);//设置协议  
        props.put("mail.smtp.port", PORT);//设置端口  
        props.put("mail.smtp.auth" , "true");  
        props.put("pop.qq.com", "false");
        Authenticator authenticator = new Authenticator() {    
            @Override  
            protected PasswordAuthentication getPasswordAuthentication() {  
                return new PasswordAuthentication(FROM, PWD);  
            }             
        };  
        Session session = Session.getDefaultInstance(props , authenticator);       
        return session;  
    }  
      
    public static void send(String toEmail, String text, String ip) {  
        Session session = getSession();  
        StringBuffer sb=new StringBuffer("点击下面链接激活账号，48小时生效，否则重新注册账号，链接只能使用一次，请尽快激活！");  
        sb.append("http://");
        sb.append(ip);
        sb.append("/HyperIT/user/activeRegister?lastemail=");  
        sb.append(toEmail); 
        sb.append("&lastcode=");
        sb.append(text);
        try {  
            System.out.println("--send--"+sb);  
            // Instantiate a message  
            Message msg = new MimeMessage(session);       
            //Set message attributes  
            msg.setFrom(new InternetAddress(FROM));  
            InternetAddress[] address = {new InternetAddress(toEmail)};  
            msg.setRecipients(Message.RecipientType.TO, address);  
            msg.setSubject("账号激活邮件");  
            msg.setSentDate(new Date());  
            msg.setContent(sb.toString() , "text/html;charset=utf-8");  
   
            //Send the message  
            Transport.send(msg);  
        }  
        catch (MessagingException mex) {  
        	throw new ApplicationRunTimeException("邮件发送失败，请稍后再试！"); 
        }  
    }  
}
